// a.cpp和b.cpp都包含了test.h，重复定义了v1和f1。
int v1;
void f1() {}

void f0(); // 函数声明，但没定义。编译正常，链接时报错。
void f1(); // 函数声明，可以重复。
static int v2;      // 静态链接，可以。
static void f2() {} // 静态链接，可以。
inline void f3() {} // 内联函数，可以。

namespace {
// 匿名的命名空间中的名字，只在当前编译单元中可见，不冲突。
  int v3;
  void f4() {}
}
